class Solution
{
public:
    bool isValid(string s)
    {
        if (s.size() % 3 != 0)
        {
            return false;
        }
        stack<char> st;
        for (char c : s)
        {
            if (c == 'c')
            {
                if (!st.empty() && st.top() == 'b')
                {
                    st.pop();
                }
                else
                {
                    return false;
                }
                if (!st.empty() && st.top() == 'a')
                {
                    st.pop();
                }
                else
                {
                    return false;
                }
            }
            else
            {
                st.push(c);
            }
        }
        return st.empty();
    }
};